package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.PageResult;
import com.example.pojo.entity.Account;
import com.example.pojo.entity.User;
import java.math.BigDecimal;
import java.util.List;

/**
 * 普通用户 service 层接口
 */
public interface UserService extends IService<User> {

    /**
     * 创建一个普通用户账户
     *
     * @param user 普通用户
     */
    void add(User user);

    /**
     * 分页查询普通用户
     *
     * @param pageNum 页码
     * @param pageSize 页大小
     * @param user 条件
     * @return 分页结果
     */
    PageResult<User> pageQuery(Integer pageNum, Integer pageSize, User user);

    /**
     * 根据普通用户id，查询普通用户
     *
     * @param id 普通用户id
     * @return 普通用户
     */
    User queryById(Integer id);

    /**
     * 查询全部普通用户
     *
     * @return 全部普通用户
     */
    List<User> queryAll();

    /**
     * 修改普通用户
     *
     * @param user 普通用户
     */
    void update(User user);

    /**
     * 登录
     *
     * @param account 账号
     * @return 账号
     */
    Account login(Account account);


    /**
     * 修改账号密码
     *
     * @param account 账号
     */
    void updatePassword(Account account);

    /**
     * 充值
     *
     * @param amount 充值的余额
     */
    void rechargeAccount(BigDecimal amount);
}
